package com.csi.service;

import com.csi.domain.Power;
import com.csi.domain.Role;
import com.csi.domain.RolePower;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

public interface RoleService {


    /**
     * 查找角色
     * @return List<Role> 角色集合
     */
    List<Role> findRole(long hotelId);

    /**
     * 通过角色id查找角色权限
     * @return List<Power>
     */
    List<Power>  findPowerById(@RequestParam("roleId")long roleId);

    /**
     * 查找所有角色权限
     * @return List<Power>
     */
    List<Power>  findAllPower();

    /**
     * 通过角色id删除角色权限
     * @param roleId 角色id
     * @return 条数
     */
    int deleteRoleById(@RequestParam("roleId")long roleId);

    /**
     * 更新用户权限
     * @param role 角色对象
     * @return 条数
     */
    int  updateRolePower(Role role);


    /**
     * 新增角色
     * @param roleName 角色名称
     * @param hotelId 酒店名称
     * @return
     */
    int save(Role role);

    /**
     * 根据酒店id和角色名查找角色
     * @param roleName
     * @param hotelId
     * @return
     */
    Role findByName(String roleName, long hotelId);


    /**
     * 根据角色id查找角色
     * @param roleId 角色id
     * @return
     */
    Role findRoleById(long roleId);

    /**
     * 更新角色名称
     * @return
     */
    int updateRole(Role role);

    /**
     * 是否为初始管理员
     * @param roleId
     * @return
     */
    boolean isInitialAdmin(long roleId,long hotelId);
}
